package com.suray.wcs.service.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import com.suray.basic.wcs.path.core.Node;
import com.suray.basic.wcs.utils.Coord;
import com.suray.wcs.res.enums.PalletStatus;
import com.suray.wcs.res.enums.RgvStatus;
import lombok.Data;
import org.apache.commons.collections.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

@Data
public class RgvInfoFloor {
    /**
     * 小车当前位置
     */
    private Node locationNode;
    /**
     * 子车当前位置
     */
    private Node sonLocationNode;
    /**
     * 小车的编号
     */
    private Integer rgvNo;
    /**
     * 小车是否载重, 详见{@link PalletStatus}
     */
    protected PalletStatus palletStatus;
    /**
     * 小车状态, 详见{@link RgvStatus}WCS自身状态
     */
    protected RgvStatus rgvStatus = RgvStatus.OFF_LINE;

    /**
     * 小车行驶方向
     */
    protected Integer direction;

    /**
     * 小车当前锁定的点
     */
    private List<Coord> waitReleaseNode = new ArrayList<>();

    /**
     * 小车分配的节点集合
     */
    private List<Coord> executeNodeList = new ArrayList<>();

    protected RgvStatus sonState;

    private int rgvType;

    /**
     * 集合对象转换
     *
     * @param nodeList
     * @return
     */
    public List<Coord> coords(List<Node> nodeList) {
        List<Coord> coordList = new ArrayList<>();
        if (CollectionUtils.isNotEmpty(nodeList)) {
            for (Node node : nodeList) {
                coordList.add(new Coord(node.getX(), node.getY(), node.getZ()));
            }
        }
        return coordList;
    }

}
